<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>

        //第一遍catch
        // catch 专门捕获失败的
        const p = new Promise((resolve,reject)=>{
            try{

            throw new Error('网络有问题````')
            console.log('请求a数据');
            setTimeout(()=>{
                console.log('请求a数据成功');
                resolve({
                    name : '老李'
                })
            })
            }catch(e){
                reject(e.message)
            }
        })
        console.log('p',p);
        p.then( value=>{
            console.log(value);
        })
        //如果catch里面有错误代码 没有处理,返回值是错误的信息
        const p1 =  p.catch( resolve=>{

            return new Promise((resolve,reject)=>{
                resolve('请求数据有问题')
            })

        })
        console.log('p1',p1);


        //第二遍catch
        const k = new Promise((resolve,reject)=>{
            try{

            throw new Error('网络有问题,请检查网络')
            console.log('请求a数据');
            setTimeout(()=>{
                console.log('请求a数据成功');
                resolve({
                    name : '老王'
                })
            })
            }catch(e){
                reject(e.message)
            }
        })
        console.log('k',k);
        k.then( value=>{
            console.log(value);
        })
        //如果catch里面有错误代码 没有处理,返回值是错误的信息
        //catch接收一个函数作为实参,用来处理promise实例的失败状态
        const k2 =  k.catch( resolve=>{

            return new Promise((resolve,reject)=>{
                resolve('请求数据有问题')
            })

        })
        console.log('k2',k2);


        //第三遍catch

    const l = new Promise((resolve,reject)=>{
            try{

            throw new Error('网络有问题,请链接网络')
            console.log('请求a数据');
            setTimeout(()=>{
                console.log('请求a数据成功');
                resolve({
                    name : '黑总'
                })
            })
            }catch(e){
                reject(e.message)
            }
        })
        console.log('l',l);
        k.then( value=>{
            console.log(value);
        })
        //如果catch里面有错误代码 没有处理,返回值是错误的信息
        //catch接收一个函数作为实参,用来处理promise实例的失败状态
        const l1 =  l.catch( resolve=>{

            return new Promise((resolve,reject)=>{
                resolve('请求数据有问题')
            })

        })
        console.log('l1',l1);
    </script>
</body>
</html>